package kalender;
 
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
public class Mote extends Avtale {
    private Person moteLeder;
    private List<Person> deltakerListe;
    private List<Melding> meldinger;
    
    public Mote(int id, String dato, int opprettetAv, String startTidspunkt, String sluttTidspunkt, String tittel, List<Person> deltakere, int romId, boolean ny) throws ClassNotFoundException, SQLException, IOException {
        super(id,dato, opprettetAv, startTidspunkt, sluttTidspunkt, tittel, romId, ny);
        deltakerListe = deltakere;
        meldinger = new ArrayList<Melding>();
//        sendMeldinger(deltakere, "");
        if(!deltakerListe.contains(Hovedklasse.getPersonWithID(opprettetAv)))
        	deltakerListe.add(Hovedklasse.getPersonWithID(opprettetAv));
        leggTilMoteIKalendere();
  
        if(isNy())
			super.opprettetAv.getKalender().updateDB(this, false, true,false);
    }
    
    public void sendMeldinger(List<Person> deltakere, String innhold){
        for(int i = 0; i < deltakere.size(); i++){
            meldinger.add(new Melding(deltakere.get(i), innhold, false, this));
        }
    }
    
    private void leggTilMoteIKalendere() throws ClassNotFoundException, SQLException, IOException{
        for(Person deltaker: deltakerListe){
            deltaker.getKalender().leggTilAvtale(this);
        }
    }
    
    public List<Melding> getMeldingListe(){
        return meldinger;
    }
 
    public Person getMoteLeder() {
        return moteLeder;
    }
 
    public void setMoteLeder(Person moteLeder) {
        this.moteLeder = moteLeder;
    }
 
    public List<Person> getDeltakerListe() {
        return deltakerListe;
    }
    
    public void leggTilDeltaker(Person deltaker){
        if(!deltakerListe.contains(deltaker)){
            deltakerListe.add(deltaker);
        }
    }
 
    public void leggeTilDeltakere(List<Person> deltakerListe) {
        this.deltakerListe = deltakerListe;
    }
    
    public String toString(){
  
	   	StringBuilder builder = new StringBuilder();
	   	builder.append("Avtaletittel: "+tittel+"\n");
	   	builder.append("ID: "+getId() +"\n");
	   	builder.append("Dato: "+dato+"\n");
	   	if (!(beskrivelse.equals("")||beskrivelse == null)){
	   		builder.append(beskrivelse+"\n");
	   	}
	   	builder.append("Avtalen varer fra " +startTidspunkt + " og varer til " + sluttTidspunkt +"\n");
	   	return builder.toString();
	}
    
    public ArrayList<Person> getDeltakerLIste(){
    	return (ArrayList<Person>) deltakerListe;
    }
}
 
 
